|
HSL 2.0-Framework
Beschreibung des Frameworks
|
Alle Methoden des HTTP-Servers. Mehr ...
Öffentliche Methoden | |
| def | __init__ (self, framework, context_map) |
| Konstruktor. Mehr ... | |
| def | set_authentication (self, user=None, pw=None, digest=False) |
| Setzt die HTTP-Authentifizierung: Mehr ... | |
| def | set_address (self, ip, port) |
| Setzt die IP-Adresse und den IP-Port. Mehr ... | |
| def | set_error_callback (self, callback) |
| Setzt eine Callback-Methode für den Fehlerfall. Mehr ... | |
| def | set_max_post_size (self, size) |
| Setzt die zulässige Größe des Body für POST/PUT-Aufrufe. Mehr ... | |
| def | set_logger (self, logger) |
| Weist dem Server eine hsl20_4.hsl20_4.Logger Instanz zu. Mehr ... | |
| def | start_server (self) |
| Startet den Server. Mehr ... | |
| def | register_uri (self, method, path, callback) |
| Registriert eine URI am Server. Mehr ... | |
| def | set_server_name (self, name) |
| Setzt den Server-Name. Mehr ... | |
Alle Methoden des HTTP-Servers.
Bietet einen Server-Dienst zur Kommunikation per HTTP.
Wurde der HTTP-Server vom Framework erzeugt und an eine IP und einen Port gebunden, kann dieser gestartet werden.
Erfolgen nun Aufrufe durch einen Client, gibt es zwei Möglichkeiten:
Nach Abarbeitung der jeweiligen Callback-Methode sendet der Server die erzeugte Antwort an die Gegenstelle. Wird im response-Objekt kein Statuscode gesetzt, antwortet der Server mit Statuscode 501.
Bei der Registrierung einer URI können direkt eine oder mehrere HTTP-Methoden (per logischem ODER, z.B. hsl20_4_http_server.GET|hsl20_4_http_server.PUT) definiert werden, alternativ kann man auch hsl20_4_http_server.ALL zuweisen, dann wird die Callback-Methode bei jeder Methode aufgerufen. Der HTTP-Server bietet direkte Unterstützung für die folgenden Methoden:
Bei den Methoden POST und PUT wird ein Body-Element im Request unterstützt, hierfür muss im Header das Feld "Content-length" gesetzt sein. Sollte der Client die maximal zulässige Größe überschreiten, wird die Verbindung durch den Server getrennt.
Siehe auch hsl20_4_http_server.Server::set_max_post_size
Folgende Timeouts, bei deren Eintreten die Verbindung getrennt wird, sind zu beachten:
Es besteht die Möglichkeit, die Zugriffe auf den Server mit Benutzer/Passwort zu sichern. Über die Methode hsl20_4_http_server.Server.set_authentication kann die Authentifizierung aktiviert und deaktiviert werden. Zur Übermittlung der Benutzerdaten stehen folgende zwei Varianten zur Verfügung:
RESULT = BASE64(Benutzername + ":" + Passwort)
HA1 = MD5(BENUTZERNAME + ":" + REALM + ":" + PASSWORT) HA2 = MD5(UPPERCASE(HTTP_METHODE) + ":" + URI) RESULT = MD5(HA1 + ":" + NONCE_SERVER + ":" + NONCE_COUNTER + ":" + NONCE_CLIENT + ":auth:" + HA2)
Die Verwendung dieser Klasse anhand eines kurzen Quellcode-Ausschnitts:
| def hsl20_4_http_server.hsl20_4_http_server.Server.__init__ | ( | self, | |
| framework, | |||
| context_map | |||
| ) |
Konstruktor.
| def hsl20_4_http_server.hsl20_4_http_server.Server.register_uri | ( | self, | |
| method, | |||
| path, | |||
| callback | |||
| ) |
Registriert eine URI am Server.
Wird diese URI von einem Client aufgerufen, wird das übergebene Callback ausgeführt.
| method | int HTTP-Abrufmethoden. Es werden per ODER mehrere Optionen pro URI unterstützt. Es stehen folgende Konstanten zur Verfügung:
|
| path | string Pfad (z.B.: /index) |
| callback | function Callback. Die hier übergebene Methode benötigt folgende Parameter: |
| def hsl20_4_http_server.hsl20_4_http_server.Server.set_address | ( | self, | |
| ip, | |||
| port | |||
| ) |
| def hsl20_4_http_server.hsl20_4_http_server.Server.set_authentication | ( | self, | |
user = None, |
|||
pw = None, |
|||
digest = False |
|||
| ) |
Setzt die HTTP-Authentifizierung:
Die Authentifizierung zählt für alle registrierten URIs.
| user | string Benutzer |
| pw | string Passwort |
| digest | bool Optional. Wenn TRUE wird als Authenifizierungsmechanismus "Digest Access Authentication" verwendet, ansonsten "Basic Authentication". |
| def hsl20_4_http_server.hsl20_4_http_server.Server.set_error_callback | ( | self, | |
| callback | |||
| ) |
Setzt eine Callback-Methode für den Fehlerfall.
Wird aufgerufen, wenn der Client eine nicht mit register_uri registrierte URL aufruft. Wird vom HTTP-Server nach Beenden dieser Methode ausgewertet.
| callback | function Die Callback-Methode benötigt folgende Parameter:
|
| def hsl20_4_http_server.hsl20_4_http_server.Server.set_logger | ( | self, | |
| logger | |||
| ) |
Weist dem Server eine hsl20_4.hsl20_4.Logger Instanz zu.
| logger | hsl20_4.Logger Logger-Objekt |
| def hsl20_4_http_server.hsl20_4_http_server.Server.set_max_post_size | ( | self, | |
| size | |||
| ) |
Setzt die zulässige Größe des Body für POST/PUT-Aufrufe.
Wird der Wert überschritten, wird der Aufruf abgebrochen.
Standardwert: 1.000.000 Byte
Zulässiger Höchstwert (MAXWERT): 10.000.000 Byte
| size | int Größe in Byte. Ist size > MAXWERT wird size = MAXWERT gesetzt! |
| def hsl20_4_http_server.hsl20_4_http_server.Server.set_server_name | ( | self, | |
| name | |||
| ) |
Setzt den Server-Name.
Wenn gesetzt, wird dieser Wert bei einem HTTP-Request als Standard-Wert für das Feld 'Server' verwendet. Der hier gesetzte Wert kann mit response.set_header überschrieben werden. Wenn kein Wert per set_server_name angegeben wird und kein Wert per response.set_header angegeben wird, wird der Context als Server-Name übermittelt.
| name | string Neuer Server-Name |
| def hsl20_4_http_server.hsl20_4_http_server.Server.start_server | ( | self | ) |
Startet den Server.
| AttributeError | Wird ausgelöst, wenn keine gültige Adresse angegeben ist. |
1.8.13